home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / mail / xr499new.zip / NEWIN499.DOC
Text File  |  1991-12-12  |  61KB  |  1,018 lines

  1. Changes from XRS v 4.50 -=> v 4.99 wide beta (prerelease of XRS 5.0):
  2.  
  3. 0) Version 4.99 is compiled with Borland C++ 3.0 - full speed optimization
  4.  turned on.  The executables are slightly fatter but noticably quicker!
  5.  Unfortunately there is also a bug in the "exec..()" routines used when you
  6.  tell XRS to "Restart?" itself, and this currently doesn't work - I have
  7.  reported the problem to Borland and they are "hard at work" on it, so they
  8.  say... (for three weeks, now)  This compiler "inlines" several intrinsic
  9.  functions for even better response in most areas!  20-30% on some machines!
  10.  
  11. 1) Even better video response (less delays) under DesqView!
  12.  
  13. 2) Snow fixed one more time.  Should eliminate all snow on CGA monitors!
  14.  
  15. 3) XRS supports *any* screen geometry a minimum of 80 lines by 25 rows,
  16.  including 90, 100, 128, 132 width sizes - up to 160 width!  It has been
  17.  tested at both 100x75 lines and 132x45 lines with no problems.  If any
  18.  program you use externally in the shell (<F10> or <Shift_F10>) alters the
  19.  video geometry, XRS will automatically restore it when you return by
  20.  'exit'ing back into XRS.  Remember - if you use a soft font, you must
  21.  put "Soft Font" into CONFIG.XRS, if it is a hardware-created font - not!
  22.  (use the "MODE x" parameter in CONFIG.XRS instead - it *does* understand
  23.  non-standard modes!)  Most things take into account the larger width of
  24.  the screen, but display output still "wraps" at column 79 on the display
  25.  side (since creating quotes longer than that will surely cause problems!).
  26.  If you "SET XRS=X" before you start the program, any MODE statement will
  27.  not take affect.  If the screen geometry is not 25 x 80, it is displayed
  28.  next to the video monitor type in the <F2> hot-keyed status window.  In
  29.  adding > 80 column support to XRS, it became painfully apparent how few
  30.  programs support this, and even more so how few do it well.  You're mostly
  31.  on-your-own here, but I swear - "it works here" - even 100 column by 75
  32.  line mode under OS/2!  Note that if XRS detects that it is already in the
  33.  "MODE xx" you specify, it does not adjust the screen, also any extended
  34.  mode parameter (i.e. "MODE 43 100 5" to set extended video attributes)
  35.  will override normal functions and always use that specific mode.  The
  36.  extended mode parameters specify values to load into _AL and/or _AH to
  37.  set board such as the Headlands/Video7 "VRAM" and "1024i".
  38.  
  39. 4) All the old CXL code was replaced with equivalent TCXL code - should
  40.  make the overall size smaller, since a few were duplicates being used
  41.  from both libraries that performed identical functions.
  42.  
  43. 5) More detailed information on what type of monitor you have is displayed
  44.  (i.e. "MCGAMono", "Herc+", "InColor", "SVGA", etc).
  45.  
  46. 6) Added ability to change to force 8x8 character mode (via new CONFIG.XRS
  47.  parameter "8x8").  This could potentially force your video monitor into a
  48.  higher lines-per-screen mode than normally accessable when used with a
  49.  forced "MODE x" parameter that sets up a non-standard video geometry (my
  50.  Orchid ProDesigner/II VGA Sierra HiColor can be pushed to a 75 line x 100
  51.  width mode, for example - "PSMODE 2A" plus 8x8)  If this is in your config
  52.  file, XRS will always force the mode before it starts the C_Worthy system,
  53.  so all screen dimensions will be correct.  It does so by loading the _BL
  54.  register with 0 and the _AX register with 1112 and generating interrupt
  55.  0x10, which should work in all cases.   If this method does not work on
  56.  your system, please send me screen-dumps!  (hit the <CTRL_F10> hot-key to
  57.  dump to $XRS$PRT.SCR, which is now correctly formatted for non-80 width
  58.  screen-dumps.  The '8x8' parameter overrides "Soft Font" parameter.  Note
  59.  that XRS no longer auto-adjusts the screen-size at run-time ever (but if
  60.  you use this parameter, you can have 43- (EGA) or 50-line (VGA) modes).
  61.  Basically, the "SET XRS=" parameter is obsolete, unless it is set to
  62.  "DDOS" to avoid video bleeding through to another screen.
  63.  
  64. 7) When you use <TAB> to export a message you wrote (from the "Create/Edit
  65.  /Delete" sub-menu) the extra line exported when you end a message with a
  66.  <CR> is no longer printed.  (I added this bug to 4.52 "fixing" the missing
  67.  line when you *didn't* have <CR> on the last line!)
  68.  
  69. 8) XRS has always defaults to "Crash" netmail (if you have a choice) for
  70.  mail inside your own zone, and "not Crash" for mail destined to another
  71.  zone.  If you want XRS to always default to "not Crash" all the time, use
  72.  "Don't Crash" in your CONFIG.XRS file.
  73.  
  74. 9) "SafeMode" in your CONFIG.XRS file will save your progress automatically
  75.  every 10 messages you read, in case you are in a house prone to lightning
  76.  or power failure (or short fuses).  You can optionally append an exact
  77.  number of message to skip between updates (to optimize for your machine)
  78.  by appending a number from 1 to 20 - if you try to set it higher than 20,
  79.  it will be reset to 20.  (The default if you don't specify this is every
  80.  10 messages.)  XRS displays a message to let you know that it is doing the
  81.  automatic safe mode update whenever it saves your progress.  Setting it to
  82.  "SafeMode 1" will slow you down a little, but guarantees you'll never lose
  83.  your place in a mailbag (because the file is updated with every message)!
  84.  Also, XRS saves the mail progress if you hit <F10> or <Shift_F10> for a DOS
  85.  shell or command (and does so before prompting you for a DOS command).
  86.  
  87. 10) You can force XRS to prompt you for the area to place each message each
  88.  time (instead of defaulting to placing it in the current area) by using
  89.  "Area Prompt" in CONFIG.XRS - this just pops up the message area with the
  90.  current area highlighted and lets you pick the area.  Also, a new item on
  91.  the <F4> hot-keyed configuration menu "Change Area" On/Off allows you to
  92.  turn this on and off so it only prompts you for an area change if you are
  93.  going to change the area instead of every time, plus it also cycles through
  94.  the options for prompting "To Name" as well.  You can turn either or both
  95.  on at one time, or turn them both off.  (You cannot change this parameter
  96.  when you are in the editor or about to quote/reply to a message or create a
  97.  new message - until you get out of "new message" mode.)
  98.  
  99. 11) XRS word-wraps output to any TTY device (i.e. LPTx: or CON:) the same
  100.  width is would on-screen (79 characters, or one less than your screen
  101.  width if you are writing to CON: - if you write to LPT1:, it is always
  102.  'fixed' word-wrapped at column 79), and if you have "Form Feed" in your
  103.  CONFIG.XRS file, it no longer prints the "=-=-=-=" bar at the bottom if
  104.  the output device is LPT1:.  This should provide perfectly formatted
  105.  messages when exported to LPT1: or PRN:, including Form Feed will kick
  106.  out a page as well!  XRS uses the "isatty()" function to determine if it
  107.  is writing to a TTY type output device, and acts accordingly - if not,
  108.  then a standard file formatted as before (without word-wrap) is written.
  109.  You can adjust the "Printwidth xxx" in CONFIG.XRS (to anything between 40
  110.  and 160 - default is 80 columns) if your printer is not an 80-column one.
  111.  
  112. 12) Fixed repacking of QWK format mailbags with fewer than eight character
  113.  BBS_ID mailbag names.
  114.  
  115. 13) Fixed problem(s) with swapping out during DOS Shell under OS/2 and
  116.  eliminated the problem clearing the screen under OS/2 as well.  Under
  117.  OS/2 you should have the C:\OS2\ANSI.SYS driver or an equivalent loaded,
  118.  just as you should have the ANSI driver loaded on any other platform.
  119.  If you are in Desqview, you need to load "DVANSI".
  120.  
  121. 15) XRS should correctly identify and display the 386^Max memory manager
  122.  presense and internal version number on the <F2> display.  This version has
  123.  been thoroughly tested with both 386-to-the-Max 6.00 and v 6.02 of QEMM386.
  124.  
  125. 16) Macros which start out > 80 characters are now supported (up to 128)
  126.  and macro substitution can allow up to 160 characters total.  Macros will
  127.  automatically word-wrap if they go over one line.  See below (#??) for
  128.  more about "substitution" meta-characters.
  129.  
  130. 17) The DPMI and VCPI subversion number is correctly displayed (in decimal
  131.  instead of hex) in the <F2> status window.
  132.  
  133. 18) With RTLink+ 5.0 used for linking, the distinction between overlayed and
  134.  non-OVL versions is obsolete.  Since you can control how much of each type of
  135.  memory - low "640K" RAM, "Expanded" and "Extended" (XMS) is used to cache the
  136.  program.  Normally the program runs in cached LIM or XMS mode, allocating
  137.  128K of LIM/EMS 3.2 (or later) memory or 128K of XMS extended memory if there
  138.  is no expanded memory.  If you have neither and do not want the program to
  139.  execute slower with non-cached run-time linking, use the new "LOW_RAM.BAT"
  140.  file to set several "SET RTOVxxxx=yyy" environment variables, and then the
  141.  program will run at full-speed in "Low (640K) RAM" instead.  It will perform
  142.  exactly like previous non-overlayed versions.  There are only two versions
  143.  of the executable - the 'generic' "RESP_OVL.EXE" that requires "RESP_OVL.DLL"
  144.  and the "'286" (runs on NEC V20/V30, too) version "RESP_RTL.EXE" requiring
  145.  "RESP_RTL.DLL".  See the file "REQUIRED.RAM" for precise details on both the
  146.  amount of memory required and the variety of options for fine-tuning memory
  147.  and memory type usage.  Using the various setable run-time allocations, you
  148.  can force the same XRS program to run in either overlayed mode in cached or
  149.  non-cached modes, or in overlayed mode.  "RESPONSE.BAT" and "RESP_286.BAT"
  150.  files are provided to allow those used to using those versions easy access to
  151.  the exact same functionality without having to remember to use new commands.
  152.  Note that if you already have batch files which call "RESPONSE X" or
  153.  "RESP_286 X" (for example), you must replace the command with a "CALL
  154.  RESPONSE X" - since RESPONSE is a batch file now. (but RESP_OVL.EXE and
  155.  RESP_RTL.EXE are still programs)  This also greatly simplifies (and shrinks
  156.  size-wise) each distribution!  The entire v 4.99 BBS-downloadable release is
  157.  only 60% the size of the 4.51 version...
  158.  
  159. 19) The "Subject" field it 'trimmed' (of extra spaces at the end) before
  160.  substitution in macros or message quote headers.
  161.  
  162. 20) When a user tries to enter a message into an area that requires an
  163.  alias and either doesn't have one, or hasn't activated alias support on
  164.  the BBS side, he is given an error message and cannot enter a message.
  165.  Also, when he pops up a list of areas to write a new message, if he does
  166.  not have an alias or hasn't turned on alias support, "Alias Required"
  167.  areas are not in the list.  This is also true during message read - if he
  168.  is in an alias required area, and has no alias or did not turn on alias
  169.  support, he cannot <Q>uote or <R>eply.
  170.  
  171. 21) "No Bell" (via any command-line parameter) should be more global.
  172.  
  173. 22) You can no longer accidentally end up in the "Inbound" subdirectory
  174.  if you shell out when XRS is looking for inbound mailbags.
  175.  
  176. 32) A new "XRS-Sort.Exe" preprocess module is included (version 1.0) that
  177.  sorts up to 7500 message mailbags.  (XRSORT10.ZIP)  This is a maximum,
  178.  and the upper limit will vary with the amount of free memory and whether
  179.  or not you have "Swap" enabled.  If you cannot sort a mailbag inside XRS
  180.  you may want to exit and try running XRS-Sort from the command-line since
  181.  more memory would be free that way.
  182.  
  183. 33) When you hit <F1> twice, it has descriptions for keys F2, F4, F6, F8,
  184.  & F10 which were lost in the code - also added CTRL_F10 (Screen Dump).
  185.  
  186. 34) Ralf Brown's "SpawnO()" routines are used for both swap-to-DOS and
  187.  swapping out XRS when calling external programs if "SWAP" is enabled.
  188.  This routine leaves only a 240 to 320 byte stub in memory, and swaps to
  189.  XMS first, EMS second, raw extended (interrupt 15) if you don't run under
  190.  a multitasker (like Desqview) and finally to disk.  If you have XMS or EMS
  191.  memory, it is shown along with detailed description of where you currently
  192.  can swap out XRS (in the <F2> hot-key status window).
  193.  
  194. 35) XRS doesn't disable EMS memory handling for OS/2 version 2.0 betas.
  195.  If you don't provide any virtual EMS memory to your DOS machines, you
  196.  should put "NO EMS" into your CONFIG.XRS file if you run OS/2 2.0!
  197.  
  198. 36) The command interpreter is no longer invoked twice for non-swapped
  199.  DOS command (via the <SHIFT_F10> hot-key).
  200.  
  201. 37) The "Edit Info" does not bleed over the help screens.
  202.  
  203. 38) The garbage on the command-line when using a "Bundler" parameter is
  204.  removed (and therefore alternative packers should work again).
  205.  
  206. 39) The cursor is no longer 'invisible' during DOS shell until the screen
  207.  is cleared or scrolled, or backspaced over.
  208.  
  209. 40) If you hit <ESCape> while the "DOS Command" prompt is on-screen, you
  210.  do not exit to a DOS shell - you return to where you were in the program.
  211.  You can use this to "cheat" and save your progress if you do not normally
  212.  use "SafeMode" because it saves your progress *before* prompting you...
  213.  
  214. 41) XRS no longer deletes all "??.MSG" messages using a single FCB kill
  215.  call (it uses "system("DEL ??.MSG");" instead.  (4DOS no longer objects)
  216.  
  217. 42) Subject ("%s") in echomail headers is from current message (not prior).
  218.  
  219. 43) The bug that caused messages to "fly by" without you seeing them if you
  220.  used <F7> during <J>ump to mark them all unread, and then replied to one
  221.  is fixed.
  222.  
  223. 44) If you have no EMS memory at startup and don't use "No EMS" in your
  224.  CONFIG.XRS file, wierd things don't happen sometimes - especially when
  225.  using the command-line parameter to make XRS be quiet.
  226.  
  227. 45) Worked around a bug that caused the <F6> "Summary/Index" display to go
  228.  blank if the first key you hit was "Down" or "PageDown".
  229.  
  230. 46) "xx% of your message is quotes!" message is in your native language.
  231.  
  232. 47) XRS has an internal "HeapCheck" and "HeapWalk" facility, which is
  233.  "hidden" on <F2> after the normal <F2> status display is on-screen.  It
  234.  will either display "Heap Corrupted" (in which case something has really
  235.  messed up!) or it will walk the heap, listing size, location and status
  236.  for each item and finally grand totals for allocation and number of items.
  237.  
  238. 48) If you don't have a "CONFIG.XRS" file at all (how could you at this
  239.  point?) then truly wierd things don't happen with the video, etc.
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247. Changes from XRS beta v 4.51 -=> v 4.52 wide beta (Released 7-Nov-91):
  248.  
  249.  
  250. 1) Updated to TCXL 5.52.05 - should fix CGA "Snow" (again).
  251.  
  252. 2) Fixed three separate bugs in the TCXL 5.52.05 "UMB" memory support code.
  253.  
  254. 3) Fixed a bug in the HeapXpander startup code that would allow it to copy
  255.  from a NULL pointer if the "HX" string was not set in the environment.
  256.  (I sure am getting tired of fixing other people's code! <grin>...)
  257.  
  258. 4) As part of better supporting DOS 5.00, QEMM 6.00 and HiMem.Sys 3.0 (XMS)
  259.  programs I now detect and use all UMB (Upper Memory Block) areas created by
  260.  QEMM or HiMem.  The new QEMM 6.0 Stealth technology can typically leave up
  261.  to 210K free available UMBs, and I suppose the new QRAM will do the same for
  262.  80286 machines.  Saving of screens is always done in UMBs if possible, since
  263.  they are easily allocable in 16-byte chunks.  (A typical 80x25 screen takes
  264.  4000 bytes to store - I have successfully run XRS in up to 80x75 line mode,
  265.  which would take 12000 bytes to save!  This saves a considerable amount of
  266.  low memory when you are several layers deep in the program!)  Editor, backup
  267.  buffers and related file import buffers and the 8K file buffer (or whatever
  268.  size you set with "Buffer") for BATxMAIL.XRS are also allocated from the UMBs
  269.  if possible also and released when no longer needed.  If you have a large
  270.  enough UMB block free, this will decrease the amount of "Low" (640K) RAM you
  271.  need by the size of the buffer - default is 10K but you can change it with a
  272.  CONFIG.XRS "EditBuffer xxxx" parameter.  "ShowSummary" (on the <F6> hot-key)
  273.  is allocated in a UMB if possible.  The big advantage to allocating things in
  274.  UMBs is that they are directly addressable by all DOS commands just as if
  275.  they were in the lower 640K and other than freeing them, you treat them
  276.  exactly as if they were there (and accesses are at the same speed as "Low"
  277.  RAM).  "All of the above" can save you a minimum of 20K "Low" memory, and up
  278.  to a potential of 150K or more if you set the buffer size high (and you have
  279.  the needed UMBs).  Note that this also reduces the amount of memory you have
  280.  to swap out if you enable "Swap", since data in UMBs do not need to be saved
  281.  and restored, which makes swapping out slightly faster.  Buffers for any
  282.  imported files are always allocated in low memory.  Since these buffers are
  283.  infrequently used and very quickly disposed, allocating them from UMBs and
  284.  immediately releasing them is slower than normal RAM.  You can totally
  285.  disable all UMB support by putting "No UMB" in your CONFIG.XRS file.  I
  286.  don't know of any reason or problem with any use of Upper Memory Blocks why
  287.  you would ever want to disable this, but just in case you do...  Not all
  288.  UMB-providers are created equal, and in some cases I've found (especially
  289.  with 386SX machines) they just don't work as they should.  I have found that
  290.  both my 386/33 machines run just fine using the normal UMB stashing of the
  291.  file and editor buffers, video screen saves, etc but my 386sx20 gets stupid
  292.  at the same spot - using the same (QEMM 6.02) memory manager (oh, well - I
  293.  probably just don't have it set up right!)...  An Upper Memory Block once
  294.  allocated should be just like any other block of memory to any DOS function
  295.  (interrupt) call - it is just a pointer to an area of memory that normally
  296.  didn't have RAM there under earlier versions of DOS and QEMM/etc.  However,
  297.  I have found that copying directly from one UMB block to another on 386sx
  298.  machines usually hangs (and therefore I don't do that.  Since the UMB
  299.  functions provided for UMB management involve a sum-total of two calls, one
  300.  to claim or allocate the memory and one to release it, I can only assume
  301.  that this is yet another case of "I'm ready but you're not"...
  302.  
  303. 6) Added CONFIG.XRS option "Form Feed" which causes "eXport" messages to have
  304.  a Form Feed added to the end of them if they are exported to a printer
  305.  device (i.e. PRN: or LPT1:, etc).
  306.  
  307. 7) Fixed "BufferWarn" line counter to distinguish between hard returns and
  308.  soft returns (word-wrap) to accurately tally number of characters that will
  309.  be written - which is not exactly the same as the count in the edit buffer.
  310.  
  311. 8) Fixed the way the final "ExitProc()" called when you leave the program
  312.  cleans up the old portal, and returns to the "Main" portal.
  313.  
  314. 9) Moved things around in the overlay structure, further reducing minimum
  315.  memory "footprint".  There are now six overlays totalling 128K, and the
  316.  memory requirements for the overlayed versions are no more than any previous
  317.  4.xx release, still!  They are also more 'balanced' in size than before.
  318.  
  319. 10) I look for "4D?PACK.XRS" instead of 4D_PACK.XRS so I can change it to
  320.  "4D-PACK.XRS" instead.  (The underscore hoses Paul Martin's CP/M XRS clone.)
  321.  
  322. 11) The display of the address and "True 4D" or "Pointnet xxx" is fixed in the
  323.  internal "XRS_Pack()" FTS-0001 packer.
  324.  
  325. 12) The 4D capability word and complement (validation) bytes are set in the
  326.  packet headers if 4D is enabled.  Apparently, some of the newer programs use
  327.  it as a "key" even though it is only a proposal and not an accepted standard.
  328.  
  329. 13) The "$XRS$PRT.SCR" file header shows "NoneOpen" instead of screwing up if
  330.  you hit <CTRL_F10> before you open a mailbag or get past the selection point.
  331.  
  332. 14) When you pack outbound mail, the rodent no longer dies if it was on.
  333.  
  334. 15) When you drop to DOS with <F10> or <Shift_F10> and/or use a program that
  335.  turns the mouse on and back off, the rodent is resucitated upon return.
  336.  
  337. 16) Instead of 'segregating' mailbag compression types, XRS displays available
  338.  mailbags of all flavors (including *.QW?) at one time.  Even if a mailbag is
  339.  named incorrectly for its compression type, XRS will detect the flavor and
  340.  use the proper extraction program.
  341.  
  342. 17) If the "Alias Allowed" bit is set in ACCESSx.XRS for an area, XRS prompts
  343.  you with "Use Your Alias Name?".  If you say "Yes" (the default), then your
  344.  alias will be used instead of your real name, if you say "No", then your real
  345.  name is used.  Note that aliases are only fully supported if the BBS is using
  346.  the most recent XRSDoor 2.04 (or later) mailbagger *AND* you set the "Option
  347.  Toggle" indicating you are using XRS 4.52 or later!  If your alias is the
  348.  same as your "real" name in the file, alias support is disabled.  Note that
  349.  XRS "remembers" whether the alias flag is set when you alter the header using
  350.  <F3> in the "Create/Edit/Delete Messages" list as well as the private status.
  351.  The list now has "?" in front of the "To Name" field if you used your alias.
  352.  You must enable alias support on the BBS by setting the '<O>ption Toggle' in
  353.  the configuration section labeled "Using XRS 4.52 or later?" *ON*.  NOTE:
  354.  previous versions of XRS choke on the user file if alias support is enabled!
  355.  
  356. 18) New "CONFIG.XRS" parameter "Force Alias" will skip the "Use Your Alias?"
  357.  prompt for areas where aliases are optional and always use your alias.
  358.  
  359. 19) To allow for the alias to be stored in RESPONSE.XRS (the outbound message
  360.  headers file), the message number (which used to be an integer) is now a BYTE
  361.  field, followed by another BYTE field which is the alias flag.  If the alias
  362.  byte is on (i.e. non-zero), then the alias should be used, if it is zero then
  363.  the real name should be used.  (this information is really only important to
  364.  XRS add-on authors...)
  365.  
  366. 21) New CONFIG.XRS parameter "Attribution xxx" allows a custom "In a message"
  367.  quote header string to be built (possibly in your native language) and can
  368.  have 'substitution' strings in them.  For now, these are limited to: "%f"
  369.  for the 'From Name' of the message you are quoting, "%t" for the 'To Name'
  370.  of the quoted message, "%d" for the date/time it was sent, "%s" for subject,
  371.  "%a" for the area, "%u" for you (your name or alias if using the alias, "%1"
  372.  for the first name of the person you are quoting and "%n" for 'now' - the
  373.  current date and time.  'xxx' may not exceed 80 characters, and the expanded
  374.  header may not exceed a total of 159 characters or it will be truncated.
  375.  Underscores are removed (turned into spaces), and pipe symbols ('|') are
  376.  translated to <CR> (new line) characters.  (in other words,
  377.     "Attribution In a message to %t <%d> %f wrote:||"
  378.  is the English version of the "standard" quote header and need not be
  379.  specified.)  Note that only the English "In a message"... is recognized by
  380.  the special routine that colors those lines differently.  Putting a different
  381.  "Attribution" in the CONFIG.XRS file does *not* automatically enable quote
  382.  headers - you still need to put "Quote Headers" in if that is what you want
  383.  by default (though you can turn it off from the <F4> window).
  384.  
  385. 22) The corresponding quote header for netmail "In a Matrix message of <%d>
  386.  you wrote:||" can also be changed with "NetmailHeader xxx" in the CONFIG.XRS
  387.  parameter file - the same substitutions and limitations listed above apply.
  388.  
  389. 23) The problem which cause "double vision" on the mouse cursor is fixed.
  390.  
  391. 24) To allow the internal editor buffer size to be dynamically allocated to a
  392.  minimum of the default edit buffer size and a larger number (to allow you to
  393.  quote larger messages, chopping out irrelevant portions) - set new parameter
  394.  "DynamicBuffer xxxxx" in CONFIG.XRS which allow the buffer to float between
  395.  twice the editor default (10K unless you adjust it) and this number (which
  396.  must be higher, or it is ignored).  Maximum is 65500 bytes.  Setting this to
  397.  a value higher than 12,000 may earn you a warning message from "GMD" (the
  398.  "Grunged Mail Detector") running on the Fidonet backbone.  XRS reserves 10%
  399.  'cushion' for expansion during "Edit File", so the largest file you can edit
  400.  is around 59000 bytes, although you can import text into a file and get as
  401.  much as around 65000 characters total (the buffer size is reduced by the
  402.  number of soft carriage returns or word-wraps in the buffer when it is
  403.  written).  Note that you *can* adjust this "down" to 10K, in which case no
  404.  dynamic buffering will be done (and you will need less memory to edit files,
  405.  but you won't be able to quote larger messages), but the default is 2 times
  406.  the buffersize, or 20K.  This should be sufficient to edit (and quote) any
  407.  messages transported on FidoNet (or QWK-based systems).  It is unlikely that
  408.  you will ever need to adjust this parameter, if you do - your should set it
  409.  to the actual value you want to use as the maximum (not half that amount).
  410.  XRS will automatically "slide" between the editor buffer default size and
  411.  about 10% larger than the message being quoted, but never exceeding this
  412.  value - if the message to be quoted exceeds this value plus a 10% 'cushion',
  413.  it will not be quotable.  Also - you can never import a file larger than the
  414.  "Editbuffer" size, but you can insert a file into a new message up to
  415.  "Dynamicsize" less 10%.  I also found the coding error which allowed old
  416.  versions of XRS to miscalculate the required quote buffer size and overrun
  417.  it writing over other things (data & code?) causing the old lockups and
  418.  "AlignChangeList" error.
  419.  
  420. 25) The internal editor buffer "rewrap" routine after a macro or file import
  421.  (using the <ALT_F4> hot-key) is fixed.  I changed the way the macros and
  422.  <ALT_F4> import file function work again.  This time it works by freeing the
  423.  "editPasteBuffer" (is not NULL) and then inserts either the macro or the
  424.  imported file into it, and forces EditText() to insert it from the buffer.
  425.  This means the macro or file is still in the paste buffer until you cut
  426.  something out again (in other words if you hit <INSERT> (or <F9> depending
  427.  upon whether or not you reversed the two keys) it will be inserted again -
  428.  until you delete a block.
  429.  
  430. 26) The eight macros (stored on the <CTRL_F1> up to <CTRL_F8> hotkeys) can
  431.  have 'substitution' strings in them.  The substitutions are the same as are
  432.  available for the "Attribution" and "NetHeader" above.  Macro key definitions
  433.  no longer require underscores to replace spaces (i.e. "Macro Mean ol' Mike").
  434.  Macro keys are now a maximum of 128 bytes each (instead of the previous 80).
  435.  
  436. 27) XRS is OS/2 aware, and displays the proper version number, etc.  It also
  437.  automatically disables *all* attempts to detect or use LIM/EMS memory.  XRS
  438.  adds "OS/2" to the tear line when it is being run under OS/2 - this support
  439.  will be expanded in the near future to run as a true OS/2 VIO application.
  440.  
  441. 28) "PushQuote()" (the routine which pushes another quote lead-in matching
  442.  the one on the current line) is no longer stumped if you are on the last
  443.  character of a line (which means you are 'sitting' on a soft-CR word-wrap).
  444.  
  445. 29) Some extraneous code which was included for using DOS prior to version 3
  446.  was removed (XRS requires DOS 3.0 or later).
  447.  
  448. 30) The typecast for "strerrmesg()" was corrected in two places.  This could
  449.  have caused some 'unusual' error message or potential lockups if certain
  450.  files were not found or not able to be opened.
  451.  
  452. 31) If the machine you are using returns an 'odd' value for the machine type
  453.  (every machine to date that does has been a 80286), the value "286?" is no
  454.  longer followed by random garbage.
  455.  
  456. 32) Using the <ALT_F7> color palette adjustment routines with overlayed
  457.  versions is no longer fatal (caused lockups after wierd error messages).
  458.  
  459. 33) In tracking down a bug in the <ALT_F7> "Color Palette Adjustment" for
  460.  overlayed versions, I found several functions were prototyped incorrectly
  461.  and this could have also added to the problems.  Both bugs fixed...  This
  462.  also is likely the culprit for a previously reported bug I never could
  463.  track down in non-286 versions being unable to properly save XRSCOLOR.BIN
  464.  updates (which should work exactly the same as 286 versions now).
  465.  
  466. 34) Chief bug hunter Daan van Rooijen noticed that the new XRS!CORE file
  467.  had one very minor inconsistency with prior versions - the "Confirm()"
  468.  procedure routine (hot-keyed 'Yes'/'No' prompts) would not cycle thru the
  469.  top any more.  It works as it used to, now.
  470.  
  471. 35) Much more of the code is compiled with the "-1" ('286) code switch
  472.  resulting in both faster execution for the 286 version and tighter code
  473.  size (and *.EXE & *.DLL files) than the non-286 'generic' version.
  474.  
  475. 36) This isn't really a bug per se, but mostly a clarification of something.
  476.  Several people reported the editor was 'sluggish' with the new "Line x of y
  477.  Column z" and " xxxx free " displayed continuously being updated.  If this
  478.  is true, you should increase your "TimeAdjust xx" above the default to give
  479.  smoother performance.  The default is 8 cycles between updates or 16 cycles
  480.  for the overlayed versions.  Increasing this makes XRS do nothing more times
  481.  before making any screen updates between refreshes, therefore if you are
  482.  constantly moving the cursor, processing keystrokes takes higher priority
  483.  over maintaining the editor status information on the screen.  Setting it
  484.  to 8 with overlayed versions (this is actually *increading* the frequency!)
  485.  gives satisfactory performance on my 386/33.  Making it larger (i.e. 20+)
  486.  should give a less 'mushy' cursor, while potentially letting the onscreen
  487.  editor status information and clock update take less priority.  Depending
  488.  upon the speed of your processor and screen updates, you may need to
  489.  increase this even more.  "Timeadjust" can be set anywhere in the range of 1
  490.  up to 50 cycles delayed between updates.  See below for a new "SlowEdit x"
  491.  parameter which provides an alternate method of "taming" the editor info.
  492.  
  493. 37) The filename for the Dynamically Linked portion required for all versions
  494.  of XRS is now "XRSCORE.DLL".  Lots of code was moved from the root segment
  495.  into the DLL as well.  All *.EXE files are smaller, DLL is slightly larger.
  496.  
  497. 38) XRS allows a "Preprocessor" to manipulate a mailbag immediately after it
  498.  is opened (only new mailbags or if you have "Force New" in CONFIG.XRS).  To
  499.  activate a preprocessor, use "PreProcess xxx" where 'xxx' is a filename to
  500.  execute before loading the summary and index into memory.  This allows you
  501.  to hook a program to sort a mailbag by subject, for example.  'xxx' *must*
  502.  be in the current directory or findable on your PATH and may NOT include a
  503.  complete pathname!
  504.  
  505. 39) "XRS-Sort.Exe" is provided to sort an open mailbag's MAILxIDX.XRS and
  506.  SUMMARYx.XRS files by date within subject within group (AREA:).  Specifying
  507.  "Preprocess XRS-Sort.Exe" will cause XRS to call "XRS-Sort.Exe" immediately
  508.  after opening each new mailbag, or always if you have "Force New" turned on.
  509.  This early version of XRS-Sort can only handle up to 900 messages, since it
  510.  requires more than a full 64K block to sort more records.  The next version
  511.  of XRS-Sort will use indirection to support sorting up to 7500+ messages.
  512.  NOTE: enabling "XRS-Sort" as your preprocessor also creates threading even
  513.  if none existed in the mailbag!  (this program is inside "XRSORT01.ZIP")
  514.  
  515. 40) Several changes had to be made to the internal working of XRS to allow
  516.  a MAILxIDX.XRS to be sorted "in place" (like 'XRS-Sort' will), since XRS
  517.  has always expected the MAILxIDX.XRS order to be the same as the BATxMAIL
  518.  file (which is *not* rearranged by 'XRS-Sort').  XRS will test the pointers
  519.  to messages and ends-of-messages and if they are not normalized (i.e. in
  520.  strictly ascending order), it will do a quicksort to fix up the end-message
  521.  pointers after loading the MAILxIDX.XRS file.  This causes a slight delay,
  522.  during which a message informing you that the sorted message index is being
  523.  "fixed" for quicker access.
  524.  
  525. 41) Any parameter in "CONFIG.XRS" which formerly required underscores ("_")
  526.  no longer needs them - i.e. "Twit First Last" or "AutoTag Mike Ratledge",
  527.  will work.  Underscores are still stripped for compatibility.
  528.  
  529. 42) A small program named "EMSCHECK.EXE" is included which thoroughly tests
  530.  your system's LIM/EMS memory funcionality, compatibility and usage by other
  531.  programs.  If you have problems with caching overlayed versions, EMS access
  532.  or swapping to LIM/EMS, run this program to check out your EMS driver.
  533.  
  534. 43) If you have poor response in the internal editor when editing large files
  535.  due to all the new edit information being constantly updated ("line x of y
  536.  column z"), putting "SlowEdit x" in CONFIG.XRS causes the editor to update
  537.  the location only when there are no keys to process, and no more than 'x'
  538.  times per second (the range is from 1 to 10 for once per second up to every
  539.  tenth of a second, and defaults to once per second).  You should enable this
  540.  option only if you are unable to find a "TimeAdjust" that lets the internal
  541.  editor respond smoothly when editing large messages.  This only affects the
  542.  updating of the "Line x of y Column z" which requires a complete traversal
  543.  of the entire internal editor buffer ("Mark", "xxx Free" and "Insert" are
  544.  still instant).  XRS now only calls all background routines when there is
  545.  nothing in the input queue (key and mouse input buffer) instead of callling
  546.  it even when there is input still unprocessed.
  547.  
  548. 44) If the last line in an exported message doesn't end in with a <CR>, it
  549.  is now properly written to the output file anyway.
  550.  
  551. 45) XRS has been moved from Turbo C 2.01 to Borland C++ 2.0 - please watch
  552.  for things that don't work exactly as they did before!  Also, this should
  553.  make things generally "snappier", because a lot more of the low-level
  554.  functions are coded in assembler and compiler optimization is improved.  I
  555.  also modified the code so it could be compiled under Microsoft or Zortech
  556.  to aid in conversion for OS/2 and DOS/Extended versions and also to take
  557.  advantage of better code optimization available when using those compilers.
  558.  
  559. 46) You can use XRS-Sort.Exe to rearrange the mailbag, and still see the
  560.  <J>ump list in numeric order by using "Sort Numeric".  This parameter is
  561.  ignored if a normal mail index is found (if XRS doesn't have to normalize
  562.  the mail index pointers to the end of each message).
  563.  
  564. 47) In a couple of places, I was calling DOS shells without checking to see
  565.  if "SET COMSPEC=" was not set properly (and therefore calling "NULL").  I
  566.  now always call "COMMAND.COM" if COMSPEC is not set.
  567.  
  568. 48) Having an XORIGIN.XRS in a mailbag no longer causes you to have to exit
  569.  and restart the program after you open a new mailbag or "sticks" for the
  570.  following mailbag.
  571.  
  572. 49) The missing "* Forwarded Privately in Response to a Message in AREA: xxx"
  573.  attribution line in netmail when replying to echomail messages has returned.
  574.  
  575. 50) You can sort the <J>ump list by Subject, Sender or Number, or leave it in
  576.  unsorted order (which might be numeric if you don't use XRS-Sort, or could
  577.  be Subject, if you use XRS-Sort).  New parameters "Sort by Name" and "Sort
  578.  Numeric" can be specified instead of "Sort Subject", and all four states can
  579.  be cycled through from the <F4> hot-keyed configuration menu.  Unfortunately
  580.  in coding this section, I noticed a bug that had been with us for a while
  581.  that either just seldom occurs or noone has noticed: you cannot sort any
  582.  list when it has been virtualized - it will have wierd effects on both the
  583.  list contents and formatting thereof.  (so if you're in a virtual list, any
  584.  sorting you have picked is ignored!)
  585.  
  586. 51) If you have only one message area in a mailbag you no longer get into a
  587.  loop (which you can only get out of with <ALT_F10>) repeatedly telling you
  588.  there are no more unread messages.
  589.  
  590. 52) XRS recognizes "Local" groups (if set properly in the BBS group/area
  591.  configuration file), and appends a special tagline, complete with a random
  592.  bragline (if applicable) that looks like " * XRS 4.52 : Your Bragline Here"
  593.  and does not append any SEENBY or PATH lines.  The "Local" message bragline
  594.  looks sort of like a Fidonet-style origin.
  595.  
  596. 53) The binary native language support overlay (formerly XRS$ALL.DTA) is now
  597.  named "XRSLANG.DLL" instead.  This is more consistant with current naming
  598.  conventions, since this file contains all the language "resource" data.
  599.  
  600. 54) Found a major whole in the woodwork in external editor support.  It was
  601.  formerly possible to create a file too large to be saved, and XRS wouldn't
  602.  "know" it and would overwrite itself in memory causing a crash or lockup.
  603.  Now, if you create a message that is too big, you get a warning message,
  604.  the file is saved as "BACKUP.XRS" and you can edit it externally and then
  605.  import it into a new message to recover it.
  606.  
  607. 55) Aliases are only supported for users with XRSDoor 2.04 or later, or if
  608.  the door author has contacted me for specifications to enable it in their
  609.  mailbagger program.  If XRS finds and "old style" user file, even if it has
  610.  an alias, it will ignore it.  NOTE: previous versions of XRS will choke on
  611.  the user file if alias support is enabled!
  612.  
  613. 56) If the "Alias Required" bit is set in ACCESSx.XRS, a user alias is always
  614.  used.  If the user doesn't have an alias, he cannot enter a message in this
  615.  type area.
  616.  
  617. 57) Messages in the first "LOCAL" group display "LOCAL" as the area tag in
  618.  the "Select Area" pick-list, not "Group_xx" where 'xx' = the group number.
  619.  
  620. 58) If you want the "Use Alias?" to default to no when you have a choice (it
  621.  normally defaults to YES, put "Alias Default No" into CONFIG.XRS - in this
  622.  case hitting just <Enter> at the above prompt will *NOT* use your alias.
  623.  
  624. 59) "Delete All Read Messages?" works correctly for mailbags other than '1'.
  625.  (i.e. ones with BAT2MAIL.XRS, SUMMARY2.XRS, etc).
  626.  
  627. 60) When running a "DosCommand()" (using <F10> or <Shift_F10> keys) XRS
  628.  clears the screen and uses the normal underline cursor.  Even if you are
  629.  using a "fastscroll" ANSI.SYS replacement (like FANSIconsole, NANSI, etc)
  630.  the "Press any key to continue..." message is always displayed onscreen.
  631.  
  632. 61) Under OS/2, the output of external programs is always forced to CON: by
  633.  turning on "Force Redirect".  Forced redirection is enabled for all external
  634.  prgoram calls include DOS Shell (on tge <F10> hot-key) and DOS Command (on
  635.  <ALT_F10> hot-key) except external editor calls.  I have to assume you are
  636.  using an external editor that properly handles screen output using direct
  637.  screen writes rather than risk disabling potential error messages, etc.
  638.  
  639. 62) If you pick "Repack" or "Delete" in the "Handle Empty Mailbag" submenu,
  640.  the screen is completely cleared instead of leaving the bottom portion.
  641.  
  642. 63) Support for PKZip/PKUnZip v 2.0 added.
  643.  
  644. 64) The signoff message ("Thanks...  Elapsed Time xx") is always yellow.
  645.  
  646. 65) An extranious ";" on the end of a statement caused XRS to sometimes
  647.  enable the cursor when it should not have after calling external programs.
  648.  
  649. 66) After a netmail name lookup, the address is displayed for a minimum of
  650.  around 1 1/2 seconds, even if "Pause 0" is in effect - so you can see it.
  651.  The "Not found" message also no longer instantly disappears if you have any
  652.  alternate namelists defined.
  653.  
  654. 67) Trying to tame DesqView's voracious habit of eating complete time-slices
  655.  whether it needs them or not, I no longer release time to DV when idle (i.e.
  656.  waiting for input) more than once per second.
  657.  
  658. 68) The cursor is reenabled during an exit caused by tampering with either
  659.  the XORIGIN.XRS or USER1.XRS file - "Bad User" _exit(90) or _exit(91).
  660.  
  661. 69) Having XRS clear the input buffer every time the "SelectArea()" pick list
  662.  was displayed (a new feature in 4.51 beta) disabled "Auto Cycle" - fixed.
  663.  
  664. 70) Disabling sound output at runtime should be "global" - i.e. there should
  665.  no longer be any 'leaks' to the "Bell()" call.
  666.  
  667. 71) In looking for bizarre inexplicable failures of "Auto Cycle" and ability
  668.  to read messages in an area after "Read Only New" was disabled turned up an
  669.  ancient, long-existing bug which was fixed.  This random corruption of data
  670.  in memory by copying a string of up to 34 bytes into a 12-byte area could be
  671.  the source of many long-standing "I dunno" and "it only happened once" type
  672.  bugs as well.  This bug was turned up in a routine that hasn't changed in
  673.  over two - maybe even three years...  (you programmer-types out there should
  674.  invest in copies of NuMega's "Soft-ICE" and "Bounds Checker" programs!  You
  675.  learn to live with and hate debuggers, so you might as well use the best
  676.  tools you can find!)
  677.  
  678. 72) If you do netmail auto-addressing (hit <INS> when prompted for a netmail
  679.  address), the match must be exact (i.e. "All" doesn't match "Allen, Bob").
  680.  This is another bug that has existed since "day one"...
  681.  
  682. 73) If threads were 'synthesized' by XRS-Sort or any other "Preprocess", and
  683.  therefore there is no "Thread" noted in the message header, I automatically
  684.  place one when I highlight the blinking ('live') "«" or "»" thread symbols.
  685.  I also corrected a minor buglet I hadn't noticed: those were supposed to be
  686.  highlighted in Yellow on Red, but I wasn't setting the background properly.
  687.  
  688. 74) XRS clears the screen and displays a message as soon as it starts to load
  689.  ("Loading..."), and the "$$ACTIVE.XRS" found warning message is clearer.
  690.  
  691. 75) XRConfig.Exe (and XRConfig.Dat) are searched for when you use the config
  692.  <F4> hot-key, and if found, XRS offers to call the program if you hit <F4>
  693.  again.  It displays a "bottom-line help" notifying you if the option is
  694.  available.  Note that "XRCONFIG.EXE" (the freestanding XRS Configuration
  695.  Program) is not yet available at this time.
  696.  
  697. 76) You can switch "swapping" (to EMS or Disk) on and off with <F12> hot-key.
  698.  A message detailing what you did is displayed on-screen.  The swapping status
  699.  is also shown as part of the <F2> status hot-key display.  For those of you
  700.  that don't have function key 11 or 12, use <ALT_F9> instead.
  701.  
  702. 77) The mouse is not disabled when the "Delete all read messages?" query is
  703.  displayed.
  704.  
  705. 78) You can enable and disable LIM/EMS usage (and EMS status check) with the
  706.  <F11> hot-key.  It can also be turned on and off with <SHIFT_F9> if you do
  707.  not have a 101-keyboard.  A display is shown at the top of the screen.
  708.  
  709. 79) XRS places a random byte into the RESPONSE.XRS so XCS can provide random
  710.  braglines for QWK systems.
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717. Changes from XRS v 4.50 (Release 3) -=> v 4.51 beta (Released 16-Sept-91):
  718.  
  719.  
  720. 1) The cursor inside the internal editor starts in "Half-Block" size, which
  721.  corresponds with the default "Insert" mode.  If you toggle to "OverType" the
  722.  cursor becomes the normal (underline) size and vice-versa.
  723.  
  724. 2) If you put "LapTop" in your CONFIG.XRS file, XRS will normally use a block
  725.  cursor in the internal editor for overtype mode (instead of the underline),
  726.  which is sometimes not as easily located on laptop and notebook displays.
  727.  
  728. 3) XRS restores the cursor to normal (underline) on exit and Shell-to-DOS.
  729.  
  730. 4) If you are using a non-TCommNet system, XRS finds and nukes the first
  731.  group (other than 0) that is labeled "LOCAL" so it doesn't show up twice.
  732.  
  733. 5) In the "<J>ump" list, the <F3> ("Modify") key sets or resets the "Tag for
  734.  Export" bit allowing you to easily select multiple messages to export (works
  735.  similarly to setting the "read" message bit with <F5> key).  Note that using
  736.  "Tag" in the "<J>ump" list this way both tags a message *AND* marks it read
  737.  (or vice-versa) at the same time - in other words, if you tag it for export,
  738.  I assume you don't want the message to be displayed as well.
  739.  
  740. 6) Added an industrial strength assembler mouse cursor reinit function.  It
  741.  =should= work on any @$&# thing with a tail!  Daan - please let me know.  It
  742.  completely reinitializes the mouse, recomputes the mickey-to-pixel ratio,
  743.  centers the cursor and turns it on.  If that doesn't work, your mouse driver
  744.  is really unusual!  It is located on the (secret) hot-key <CTRL_F9>...
  745.  The Mouse Resucitate (on <CTRL_F9> hot-key) now should work whether or
  746.  not XRS thought you had a mouse, whether or not it is "hot" when you come
  747.  back from an external program and whether or not the program thinks the
  748.  mouse cursor is invisible or not.
  749.  
  750. 7) I completely bypass the LIM/EMS checking in <F2> if "NOEMS" is specified
  751.  as a parameter in the CONFIG.XRS file.
  752.  
  753. 8) I don't hard-code the word "None" in some places I missed it before, but
  754.  use the NLS (native language support) overlay message instead (in other
  755.  words, it shows in your native language).
  756.  
  757. 9) In the <F2> Status hot-key display, XRS detects and displays the LIM/EMS
  758.  version and page frame, DMPI or VCPI mode and XMS driver and their version
  759.  numbers, DesqView and QEMM and their version number(s) if any, plus the DOS
  760.  version as well.  Also added better NLS (binary Native Language Support
  761.  overlay) usage for "Free", etc. (and the total LIM/EMS RAM is correct, too)
  762.  
  763. 10) If XCS.Exe and XRSlice.Exe are both found on the PATH, then XRS offers
  764.  to remove (delete) all messages you have read.  The default is "No" unless
  765.  you add a new CONFIG.XRS parameter "Delete Read Usually", in which case the
  766.  default is "Yes".  "Delete Read Never" causes prompt to never be displayed.
  767.   (If you haven't read any new messages during the session this is skipped.
  768.    If you have read all messges this is skipped, but you can delete the
  769.    mailbag by selecting "Delete" or "Repack and delete" from the list-box.)
  770.  
  771. 11) "AutoTag" and "AutoMatch" are all run in a single pass - from 1 to 20 of
  772.  them possible, and may now be mixed and matched instead of one "AutoTag" and
  773.  up to 10 "AutoMatch" parameters.  Not only is this much faster (by a factor
  774.  of up to 10), if most parameters are "AutoMatch" types, after each message
  775.  is matched, the search can skip to the next message without even checking
  776.  the remaining entries (unless some are "AutoTag" types and the message has
  777.  not already been tagged for export).  This also gives extreme flexibility in
  778.  the taggings for export and/or marking "Matched" routines, since all 20 are
  779.  marked at once in an "OR" fashion.  (yielding the ability to mark 20 strings
  780.  in less than the time that it used to take for two!)
  781.  
  782. 12) When in the internal editor, XRS displays "Line x of x Column y" instead
  783.  of just the current position in the window.  Also, all of the displays
  784.  around the window frame in the internal editor are in the native language.
  785.  
  786. 13) The previously "secret" (undocumented) quote cleaning hot-keys (on both
  787.  <ALT_F3> for "Create Quote Lead-In" and <ALT_F5> for "Delete Quote Lead-In"
  788.  have been repaired and should work properly.  To use <ALT_F3>, position the
  789.  cursor over a space and <ALT_F3> will cut a quoted line in two, starting the
  790.  new line with the identical quote lead-in which was found on the line before
  791.  it was cut in two.  To use the <ALT_F5> key, position the cursor over the
  792.  space *before* an existing quote lead-in, and <ALT_F5> will remove the quote
  793.  lead-in.  (XRS now also finds and uses the quote lead-in on the current line
  794.  instead of just inserting a quote lead-in to the person you are replying to.)
  795.  Taking a quote lead-in out both measures the size of the quote lead-in at the
  796.  start of the line (to determine how many characters to delete), and also
  797.  checks to see if it is at the beginning of a line, and if so, "closes up" the
  798.  two lines (it intelligently joins them if and only if required).
  799.  
  800. 14) The "From" line in the header of archived messages is fixed.  (it now
  801.  also shows the BBS/ID in addition to the filename - it used to show a random
  802.  string, which sometimes made the right-hand margin go over 79 characters...)
  803.  
  804. 15) XRS_Pack no longer puts a space between the "AREA:" kludge and the area
  805.  name.  This was per FTS-0004, but common practice seems to indicate that 90%
  806.  of other programs do not do this and 50% of the rest get stupid if you do.
  807.  (in other words, the specs say they should be there, but I took them out...)
  808.  
  809. 16) When you use an external editor, instead of "Save Message?", XRS prompts
  810.  you with "Retain Message?" (in other words, it lets you know that if you
  811.  pick "No", it will discard the message entirely - not just the edits you
  812.  may have just done - if you think about this, XRS has no way to intelligently
  813.  back out or "undo" changes you made with an external editor!).  There is also
  814.  a new context-sensitive help screen for this prompt which clearly explains
  815.  what action will result for each choice (if you hit <F1> at the prompt).
  816.  
  817. 17) "Mark" displayed during block mode is also blinked, to help highlight it.
  818.  
  819. 18) XRS$CORE.RTL has been renamed XRSCORE.RTL, but all your related programs
  820.  will need to have the old one until I compile new versions of them!).  It
  821.  was relinked with RTLink+ 5.00, and no longer has any problem(s) loading
  822.  into DOS 5.0 with more memory than RTLink+ 4.10a thought was possible (which
  823.  gave the erroneous "est0001 - illegal format in loadable file" message).
  824.  
  825. 19) Added a new context-sensitive help screen for "Remove Read Messages".
  826.  
  827. 20) As the amount of memory I can overlay increases, I have to increase the
  828.  amount of LIM/EMS (both versions) or XMS RAM (in '286 versions only) of the
  829.  overlayed executables.  Version 4.51 allocates 128K LIM/EMS or the exact #K
  830.  it needs (somewhere around 116K) for overlay caching in XMS if available
  831.  (limited however much is available - previous versions would allocate only
  832.  up to 96K maximum).  This change allows overlayed versions to run in about
  833.  the same amount of memory as previous versions, although the 4K edit buffer
  834.  and backup size increased.  Most immediate noticable change should be that
  835.  absolutely no overlay cache "thrashing" should occur whatsoever any more -
  836.  meaning if you have sufficient memory to cache them all, they will never be
  837.  read from disk and the program will run at 100% of the speed of non-overlay
  838.  versions.  You should never see the disk light glowing when XRS is waiting
  839.  for input or during background routines or in any cases except when it must
  840.  actually read messages off the disk, etc.  This is a change from previos
  841.  versions which did not cache into XMS, but "plain" extended memory.
  842.  
  843. 21) Native language replaces hard-coded English in the "Search/Tag/Match"
  844.  routine (the "Found! In Message #", "lines scanned", etc).  Elapsed time at
  845.  program exit is also displayed in the native language.
  846.  
  847. 22) XRS validates the external XRS$ALL.DTA file before using it.  If it is
  848.  out-of-date, it tells you so and exits.
  849.  
  850. 23) XRS insures it is running under DOS 3.0 or later - if not, it exits.
  851.  
  852. 24) The input queue is cleared of keystokes and mouse input immediately before
  853.  the "Select Area" list or "Auto Cycle" message are shown.
  854.  
  855. 25) The non-286 overlayed version will now use XMS to cache overlays if no
  856.  LIM/EMS is available.  (recent versions only did so for the 286 flavor)
  857.  
  858. 26) A minor coding error chopped off macros that were between 74 and 80 bytes
  859.  long (shortened them down to 73 characters) - fixed!
  860.  
  861. 27) A completely new "Import()" routine for inserting files into the internal
  862.  editor was written.  It now also checks to make certain the addition will not
  863.  overflow the edit buffer before allowing import.
  864.  
  865. 28) The incredibly sneaky (but slow) Import file (hot-key <ALT_F4> in the
  866.  internal editor) was replaced by a direct buffer-to-buffer copy and updating
  867.  the "_editInfo" structure.  Time to import any size file is basically nil, as
  868.  compared to (up to) minutes in previous verions.  The display of available
  869.  buffer space in the error message "file is too large..." was also corrected.
  870.  As part of this change, I continually show the free buffer space left in the
  871.  internal editor in the lower left-hand corner of the editor window (if you
  872.  don't have "No Edit Info" in CONFIG.XRS).  This indicator starts to blink if
  873.  you exceed 12,000 bytes in the buffer (an arbitrary threshhold, set by the
  874.  ZEC in Zone 1).  Messages over this length may not be transported correctly
  875.  (by the FidoNet "backbone" - this has nothing to do with an XRS problem!).
  876.  
  877. 29) Macro-keys (on hot-keys <CTRL_F1> to <CTRL_F8> are also directly copied
  878.  into the edit buffer and therefore I eliminated the extra-large preallocated
  879.  input queue, saving around 1k more code-size and data-size.
  880.  
  881. 30) The internal editor buffer-size is settable by "EditBuffer xxxxx" in the
  882.  CONFIG.XRS file - default is 10k (10240 bytes).  The default leaves 4k more
  883.  free memory than previous 4.50 and earlier overlayed versions, and 12k more
  884.  RAM free for non-overlayed versions.  You can adjust it anywhere in a range
  885.  of 8192 bytes (to limit memory usage) or up to 65500 bytes - double this
  886.  amount you specify is used for the edit and backup buffers (in other words, a
  887.  10k buffer takes 20k to store - because of the backup, and a 64k buffer takes
  888.  128k to store).  See next two parameters, also.  Setting this to any value
  889.  higher than 12,000 may earn you a warning message from "GMD" (the "Grunged
  890.  Mail Detector) running on Tony Davis's and other backbone system.  FTS-0001
  891.  states that message text is "bounded by a <NUL> character", which means
  892.  unlimited in size.  Most QWK style systems only accept 99 lines of 77
  893.  characters, so be careful what you feed these limited-thinking programs!
  894.  
  895. 31) To change the buffer overflow warning threshold (which is 12,000 bytes by
  896.  virtue of the current Fidonet Zone 1 backbone echomail "operating procedure")
  897.  use "BufferWarn xxxxx" where 'xxxxx' is in the range 12,001 to 65,500 bytes.
  898.  This controls when/if the "xxxx Free" blinks in the internal editor.  The
  899.  default is FidoNet Zone 1's 'backbone' limit of 12,000 bytes.  Setting this
  900.  to a higher value may earn you a warning message from "GMD" (the "Grunged
  901.  Mail Detector) running on Tony Davis's system.  The 'warnsize' is adjusted
  902.  by the number of lines in the message, since writing it will reduce the
  903.  filesize by one byte per <CR><LF> changed to a <CR> only.
  904.  
  905. 32) XRS 4.51 has been tested under MS/DOS 5.0, DR DOS 6.0, QEMM 6.0, HiMem.Sys
  906.  3.0 and DesqView 2.4, none of which cause anything "funny" on my machine.
  907.  Under DesqView you need "Virtualize Text and Graphics" set to 'T' for 'Text'!
  908.  
  909. 33) SysOp using "XORIGIN.XRS" is fixed (no longer ignored resulting in an
  910.  empty origin line).
  911.  
  912. 34) Excellent professional/commercial quality printed and bound manuals for
  913.  both XRS and XCS are available.  These were produced by Rudi Kusters using
  914.  PageMaker 4.0, and printed both here in the states and in the Netherlands -
  915.  both 3-ring binder punched and "tape" bound, so they can each be used like a
  916.  book, or the spine split to be placed into a 3-ring binder for convenience.
  917.  Each has a multi-color cover and stiff back cover for excellent usability.
  918.  Both manuals are considerably nicer than the standard on-disk documentation!
  919.  Each manual is available for $12 including shipping and handling charges, or
  920.  together for $20, or in combination with an XRS or XCS voluntary upgrade
  921.  fee for $25.  Also, you can purchase the "All of the above" option for $60,
  922.  which includes perpetual (one-shot or lifetime) user licenses (registration)
  923.  of XRS, XCS and manuals for current versions (from either Rudi or myself).
  924.  A diskette upgrade service is also available - see DISKETTE.ETC for details.
  925.  These services will become available starting sometime around November 1st
  926.  from both Rudi in the Netherlands and myself here in the US.  The exact
  927.  availability date will be announced in the QMX_XRS support echo on FidoNet.
  928.  
  929. 35) "AutoTag" parameters only tag a message for export one time - once they
  930.  have been exported, it will only mark the message as "matched".
  931.  
  932.  
  933.  
  934.  
  935.  The following changes were made in "Release 2" or "Release 3" of XRS 4.50:
  936.     (depending upon which 4.50 you had, these may are may not be new...)
  937.  
  938.  
  939. 1) ARJ format mailbags are supported.  Extension used is ".JXR".  PKZip.EXE
  940.  (if found on the PATH) is still the default - you must specify archiver you
  941.  wish to use other than PKZip with the "PACKER ARJ" parameter, for example.
  942.  (note that leaving the '.EXE' extension off the packer statement no longer
  943.  causes a problem, either)  For backwards-compatibility, this XRS version
  944.  still uses only PKZip, LHA or PKArc to pack response mailbags (if you have
  945.  ARJ selected, it will use PKZip instead for this one function).
  946.  
  947. 2) LHA file creation problem fixed.
  948.  
  949. 3) True 4D is used in *.PKT header if the program finds a "4D_PACK.XRS" file.
  950.  
  951. 4) XRS stores "???_ONLY.XRS" with a mailbag (as well as "4D_PACK.XRS").
  952.  
  953. 5) XRS computes the exact amount of memory to swap out to LIM/EMS or disk if
  954.  you enable swapping, rather than fudging the "FarCoreLeft()" amount by 16k.
  955.  In most cases, this should cause the swapped file or LIM/EMS size to be one
  956.  block (or 16k) smaller.
  957.  
  958. 6) Messages which are replies to message numbers from 32768 up to 65535 are
  959.  displayed correctly in the "Create/Edit/Delete" list.
  960.  
  961. 7) Netmail message headers that are modified with <F3> no longer cause an
  962.  incorrect " * Forwarded privately in response..." to be inserted.
  963.  
  964. 8) Netmail address "grabbing" from echomail messages is improved and more
  965.  likely to have the correct address as the default if you reply privately.
  966.  
  967. 9) XCS version number used on tearline problem fixed.
  968.  
  969. 10) XRS remembers the name of the last imported file (using the<ALT_F4> hot
  970.  key in the internal editor).
  971.  
  972. 11) XRS puts the version number, etc. into the file named "$$ACTIVE.XRS",
  973.  so external programs can tell which version of XRS it is running under.
  974.  
  975. 12) "Compress Mailbag" is selected, the mailbag is no longer compressed
  976.  *and* deleted (only compressed).
  977.  
  978. 13) If a subject you quote is too long to fit into the new subject field
  979.  (more than 25 characters in "QWK" mode or 70 characters in native mode)
  980.  it is clipped to fit.  This previously caused a "Portal Error" message.
  981.  
  982. 14) The last block of LIM/EMS memory used by the HX routines to preload
  983.  the summary information (assuming you have LIM/EMS and didn't exclude
  984.  using it) is not nuked on shell to DOS or calling an external program.
  985.  This is done by "locking" 16k blocks of LIM/EMS memory (only one at a
  986.  time) so other parts of the program that use LIM/EMS (like "Swap" or
  987.  caching, or some external programs) don't destroy the contents of the
  988.  LIM/EMS page-frame by failing to save and restore the "context" when
  989.  they access (or rather change) it.
  990.  
  991. 15) New "CONFIG.XRS" parameter 'Soft Fonts' causes XRS to not adjust the
  992.  screen geometry when you return from a DOS shell or swap/shell.  This
  993.  must be used with "SET XRS=X" to be effective.  Normally, XRS restores
  994.  the video mode which was in effect when you shelled out - with soft
  995.  fonts, this could be problamatic - with hardware fonts, it is not.
  996.  
  997. 16) Putting ^aPID: ("hidden") kludges into message is the default instead
  998.  of putting XRS version information on the tear line.  XCS version (if
  999.  XCS or QWK mail being read) *is* displayed on the tear line - whether
  1000.  or not pids are turned on.  You can put "No Pids" into CONFIG.XRS to
  1001.  defeat this, but I would prefer that you not, and that programs not
  1002.  change the tear or pid lines after they are created - this should never
  1003.  occur!  The very reason they are there is to identify the originating
  1004.  program that injects the mail into the system, and altering them is a
  1005.  total defeat of that intent.  Several "QWK" style mail readers have
  1006.  given ORE ("Offline Reader Editor") programs a "bad name" on Fidonet,
  1007.  since they do not properly alter their behaivior to accomodate the new
  1008.  environment (which XRS does).  XRS 4.50 release 2 also only puts a BBS
  1009.  type in the address field of the Origin line.
  1010.  
  1011. 17) A new text document named "OPTIMIZE.XRS" is included in this release.
  1012.  It details the best things to 'tweek' depending upon how much and which
  1013.  type(s) of memory you have, disk speed, etc.  All of these are done by
  1014.  changing and/or adding parameters to the CONFIG.XRS file.
  1015.  
  1016. 18) If a "Bundler" is suppied, XRS uses it instead of the XRS2REP.EXE
  1017.  default.  Previously, XRS wouldn't use either (used "XRS_Pack" routines).
  1018.